package edu.scau.sku.service;


import edu.scau.sku.vo.SkuVo;

import java.util.List;
import java.util.Map;

/**
 * Service接口
 */
public interface SkuService {

    /**
     * 查找所有
     * @return 列表
     */
    List<SkuVo> listAll();

    /**
     * 根据id查找一条数据
     * @param skuCode skuCode
     * @return Sku
     */
    SkuVo findSkuByCode(String skuCode);

    /**
     * 分页查找
     * @param skuVo 对象
     * @return 列表
     */
    List<SkuVo> listByPage(SkuVo skuVo);

    /**
     * 根据id更新一条数据
     * @param skuVo 对象
     * @return 影响行数
     */
    int updateSku(SkuVo skuVo);

    /**
     * 根据id删除一条数据
     * @param skuCode 库存编号
     * @return 影响行数
     */
    int deleteSkuByCode(String skuCode);

    /**
     * 插入一条数据
     * @param skuVo 对象
     * @return 影响行数
     */
    int insertSku(SkuVo skuVo);

    /**
     * 查找所有库存为空的库存
     * @return
     */
    List<SkuVo> findAllStockEmpty();

    boolean isExisted(String skuCode);
    String generateSkuCode(String productSn);

    boolean isStockSufficient(Map<String, Integer> skuMap);

    int batchUpdateStock(Map<String, Integer> skuMap);

    int batchAddStock(Map<String, Integer> skuMap);
}
